home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / INTERNET / SITES / LITTLE / P3SRC.ZIP / ATARI / PARSE.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-15  |  22.8 KB  |  537 lines

  1. /****************************************************************************
  2. *                   parse.h
  3. *
  4. *  This header file is included by all all language parsing C modules in
  5. *  POV-Ray.
  6. *
  7. *  from Persistence of Vision(tm) Ray Tracer
  8. *  Copyright 1996 Persistence of Vision Team
  9. *---------------------------------------------------------------------------
  10. *  NOTICE: This source code file is provided so that users may experiment
  11. *  with enhancements to POV-Ray and to port the software to platforms other
  12. *  than those supported by the POV-Ray Team.  There are strict rules under
  13. *  which you are permitted to use this file.  The rules are in the file
  14. *  named POVLEGAL.DOC which should be distributed with this file. If
  15. *  POVLEGAL.DOC is not available or for more info please contact the POV-Ray
  16. *  Team Coordinator by leaving a message in CompuServe's Graphics Developer's
  17. *  Forum.  The latest version of POV-Ray may be found there as well.
  18. *
  19. * This program is based on the popular DKB raytracer version 2.12.
  20. * DKBTrace was originally written by David K. Buck.
  21. * DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
  22. *
  23. *****************************************************************************/
  24.  
  25. #ifndef PARSE_H
  26. #define PARSE_H
  27.  
  28.  
  29. /*****************************************************************************
  30. * Global preprocessor defines
  31. ******************************************************************************/
  32.  
  33. #define MAX_STRING_INDEX 127
  34.  
  35. /* Here we create our own little language for doing the parsing.  It
  36.   makes the code easier to read. */
  37.  
  38. #define EXPECT { int Exit_Flag; Exit_Flag = FALSE; \
  39.  while (!Exit_Flag) {Get_Token();  switch (Token.Token_Id) {
  40. #define CASE(x) case x:
  41. #define CASE2(x, y) case x: case y:
  42. #define CASE3(x, y, z) case x: case y: case z:
  43. #define CASE4(w, x, y, z) case w: case x: case y: case z:
  44. #define CASE5(v, w, x, y, z) case v: case w: case x: case y: case z:
  45. #define CASE6(u, v, w, x, y, z) case u: case v: case w: case x: case y: case z:
  46. #define END_CASE break;
  47. #define EXIT Exit_Flag = TRUE;
  48. #define OTHERWISE default:
  49. #define END_EXPECT } } }
  50. #define GET(x) Get_Token(); if (Token.Token_Id != x) Parse_Error (x);
  51. #define ALLOW(x) Get_Token(); if (Token.Token_Id != x) Unget_Token();
  52. #define UNGET Unget_Token();
  53. #define CASE_FLOAT CASE2 (LEFT_PAREN_TOKEN, FLOAT_FUNCT_TOKEN)\
  54.  CASE2 (PLUS_TOKEN, DASH_TOKEN) UNGET
  55. #define CASE_VECTOR CASE2 (VECTOR_FUNCT_TOKEN,LEFT_ANGLE_TOKEN) \
  56.  CASE2 (U_TOKEN,V_TOKEN) CASE_FLOAT
  57. #define CASE_EXPRESS CASE_VECTOR
  58.  
  59. #define CASE_COLOUR CASE3 (COLOUR_TOKEN,COLOUR_KEY_TOKEN,COLOUR_ID_TOKEN) UNGET
  60.  
  61. #define MAX_BRACES 200
  62.  
  63. /* Token Definitions for Parser */
  64.  
  65. #define ABS_TOKEN                         0
  66. #define ATAN2_TOKEN                       1
  67. #define CEIL_TOKEN                        2
  68. #define CLOCK_TOKEN                       3
  69. #define COS_TOKEN                         4
  70. #define DEGREES_TOKEN                     5
  71. #define DIV_TOKEN                         6
  72. #define EXP_TOKEN                         7
  73. #define FLOAT_ID_TOKEN                    8
  74. #define FLOAT_TOKEN                       9
  75. #define FLOOR_TOKEN                      10
  76. #define INT_TOKEN                        11
  77. #define LOG_TOKEN                        12
  78. #define MAX_TOKEN                        13
  79. #define MIN_TOKEN                        14
  80. #define MOD_TOKEN                        15
  81. #define PI_TOKEN                         16
  82. #define POW_TOKEN                        17
  83. #define RADIANS_TOKEN                    18
  84. #define SIN_TOKEN                        19
  85. #define SQRT_TOKEN                       20
  86. #define VDOT_TOKEN                       21
  87. #define VLENGTH_TOKEN                    22
  88. #define VERSION_TOKEN                    23
  89. #define ON_TOKEN                         24
  90. #define OFF_TOKEN                        25
  91. #define TRUE_TOKEN                       26
  92. #define FALSE_TOKEN                      27
  93. #define YES_TOKEN                        28
  94. #define NO_TOKEN                         29
  95. #define ACOS_TOKEN                       30
  96. #define ASIN_TOKEN                       31
  97. #define TAN_TOKEN                        32
  98. #define ASC_TOKEN                        33
  99. #define STRLEN_TOKEN                     34
  100. #define VAL_TOKEN                        35
  101. #define FILE_EXISTS_TOKEN                36
  102. #define STRCMP_TOKEN                     37
  103. #define SEED_TOKEN                       38
  104. #define RAND_TOKEN                       39
  105. #define FLOAT_FUNCT_TOKEN                40
  106.  
  107. /*WARNING: All new functions returning a float value must be placed
  108.   before FLOAT_FUNCT_TOKEN or the parser won't work right. */
  109.  
  110. #define VAXIS_ROTATE_TOKEN               41
  111. #define VCROSS_TOKEN                     42
  112. #define VECTOR_ID_TOKEN                  43
  113. #define VNORMALIZE_TOKEN                 44
  114. #define VROTATE_TOKEN                    45
  115. #define X_TOKEN                          46
  116. #define Y_TOKEN                          47
  117. #define Z_TOKEN                          48
  118. #define VECTOR_FUNCT_TOKEN               49
  119.  
  120. /*WARNING: All new functions returning a vector value must be placed
  121.   before VECTOR_FUNCT_TOKEN or the parser won't work right. */
  122.  
  123. #define ALPHA_TOKEN                      50
  124. #define BLUE_TOKEN                       51
  125. #define FILTER_TOKEN                     52
  126. #define TRANSMIT_TOKEN                   53
  127. #define GREEN_TOKEN                      54
  128. #define RED_TOKEN                        55
  129. #define RGBF_TOKEN                       56
  130. #define RGBFT_TOKEN                      57
  131. #define RGBT_TOKEN                       58
  132. #define RGB_TOKEN                        59
  133. #define COLOUR_KEY_TOKEN                 60
  134.  
  135. /*WARNING: All new keywords which may preceed a COLOUR must be placed
  136.   before COLOUR_KEY_TOKEN or the parser won't work right. */
  137.  
  138. #define COLOR_TOKEN                      61
  139. #define COLOUR_TOKEN                     62
  140. #define COLOUR_ID_TOKEN                  63
  141.  
  142. /*Note:Not 100% sure about the above tokens.  May move them up later. */
  143.  
  144. #define ADAPTIVE_TOKEN                   64
  145. #define AGATE_TOKEN                      65
  146. #define ALL_TOKEN                        66
  147. #define AMBIENT_TOKEN                    67
  148. #define AMPERSAND_TOKEN                  68
  149. #define AREA_LIGHT_TOKEN                 69
  150. #define AT_TOKEN                         70
  151. #define BACK_QUOTE_TOKEN                 71
  152. #define BACK_SLASH_TOKEN                 72
  153. #define BAR_TOKEN                        73
  154. #define BICUBIC_PATCH_TOKEN              74
  155. #define BLOB_TOKEN                       75
  156. #define BOUNDED_BY_TOKEN                 76
  157. #define BOX_TOKEN                        77
  158. #define BOZO_TOKEN                       78
  159. #define BRICK_TOKEN                      79
  160. #define BRILLIANCE_TOKEN                 80
  161. #define BUMPS_TOKEN                      81
  162. #define BUMPY1_TOKEN                     82
  163. #define BUMPY2_TOKEN                     83
  164. #define BUMPY3_TOKEN                     84
  165. #define BUMP_MAP_TOKEN                   85
  166. #define BUMP_SIZE_TOKEN                  86
  167. #define CAMERA_ID_TOKEN                  87
  168. #define CAMERA_TOKEN                     88
  169. #define CHECKER_TOKEN                    89
  170. #define CLIPPED_BY_TOKEN                 90
  171. #define COLON_TOKEN                      91
  172. #define COLOR_MAP_TOKEN                  92
  173. #define COLOUR_MAP_ID_TOKEN              93
  174. #define COLOUR_MAP_TOKEN                 94
  175. #define COMMA_TOKEN                      95
  176. #define COMPONENT_TOKEN                  96
  177. #define COMPOSITE_TOKEN                  97
  178. #define CONE_TOKEN                       98
  179. #define CRAND_TOKEN                      99
  180. #define CUBIC_TOKEN                     100
  181. #define CYLINDER_TOKEN                  101
  182. #define DASH_TOKEN                      102
  183. #define DECLARE_TOKEN                   103
  184. #define DEFAULT_TOKEN                   104
  185. #define DENTS_TOKEN                     105
  186. #define DIFFERENCE_TOKEN                106
  187. #define DIFFUSE_TOKEN                   107
  188. #define DIRECTION_TOKEN                 108
  189. #define DISC_TOKEN                      109
  190. #define DISTANCE_TOKEN                  110
  191. #define DOLLAR_TOKEN                    111
  192. #define END_OF_FILE_TOKEN               112
  193. #define EQUALS_TOKEN                    113
  194. #define EXCLAMATION_TOKEN               114
  195. #define FALLOFF_TOKEN                   115
  196. #define FINISH_ID_TOKEN                 116
  197. #define FINISH_TOKEN                    117
  198. #define FLATNESS_TOKEN                  118
  199. #define FOG_TOKEN                       119
  200. #define FREQUENCY_TOKEN                 120
  201. #define GIF_TOKEN                       121
  202. #define GRADIENT_TOKEN                  122
  203. #define GRANITE_TOKEN                   123
  204. #define HASH_TOKEN                      124
  205. #define HAT_TOKEN                       125
  206. #define HEIGHT_FIELD_TOKEN              126
  207. #define HEXAGON_TOKEN                   127
  208. #define IDENTIFIER_TOKEN                128
  209. #define IFF_TOKEN                       129
  210. #define IMAGE_MAP_TOKEN                 130
  211. #define INCLUDE_TOKEN                   131
  212. #define INTERPOLATE_TOKEN               132
  213. #define INTERSECTION_TOKEN              133
  214. #define INVERSE_TOKEN                   134
  215. #define IOR_TOKEN                       135
  216. #define JITTER_TOKEN                    136
  217. #define LAMBDA_TOKEN                    137
  218. #define LEFT_ANGLE_TOKEN                138
  219. #define LEFT_CURLY_TOKEN                139
  220. #define LEFT_PAREN_TOKEN                140
  221. #define LEFT_SQUARE_TOKEN               141
  222. #define LEOPARD_TOKEN                   142
  223. #define LIGHT_SOURCE_TOKEN              143
  224. #define LOCATION_TOKEN                  144
  225. #define LOOKS_LIKE_TOKEN                145
  226. #define LOOK_AT_TOKEN                   146
  227. #define MANDEL_TOKEN                    147
  228. #define MAP_TYPE_TOKEN                  148
  229. #define MARBLE_TOKEN                    149
  230. #define MATERIAL_MAP_TOKEN              150
  231. #define MAX_INTERSECTIONS               151
  232. #define MAX_TRACE_LEVEL_TOKEN           152
  233. #define MERGE_TOKEN                     153
  234. #define METALLIC_TOKEN                  154
  235. #define MORTAR_TOKEN                    155
  236. #define NO_SHADOW_TOKEN                 156
  237. #define OBJECT_ID_TOKEN                 157
  238. #define OBJECT_TOKEN                    158
  239. #define OCTAVES_TOKEN                   159
  240. #define OMEGA_TOKEN                     160
  241. #define ONCE_TOKEN                      161
  242. #define ONION_TOKEN                     162
  243. #define PATTERN1_TOKEN                  163
  244. #define PATTERN2_TOKEN                  164
  245. #define PATTERN3_TOKEN                  165
  246. #define PERCENT_TOKEN                   166
  247. #define PHASE_TOKEN                     167
  248. #define PHONG_SIZE_TOKEN                168
  249. #define PHONG_TOKEN                     169
  250. #define PIGMENT_ID_TOKEN                170
  251. #define PIGMENT_TOKEN                   171
  252. #define PLANE_TOKEN                     172
  253. #define PLUS_TOKEN                      173
  254. #define POINT_AT_TOKEN                  174
  255. #define POLY_TOKEN                      175
  256. #define POT_TOKEN                       176
  257. #define QUADRIC_TOKEN                   177
  258. #define QUARTIC_TOKEN                   178
  259. #define QUESTION_TOKEN                  179
  260. #define QUICK_COLOR_TOKEN               180
  261. #define QUICK_COLOUR_TOKEN              181
  262. #define RADIAL_TOKEN                    182
  263. #define RADIUS_TOKEN                    183
  264. #define BRICK_SIZE_TOKEN                184
  265. #define REFLECTION_TOKEN                185
  266. #define REFRACTION_TOKEN                186
  267. #define RIGHT_ANGLE_TOKEN               187
  268. #define RIGHT_CURLY_TOKEN               188
  269. #define RIGHT_PAREN_TOKEN               189
  270. #define RIGHT_SQUARE_TOKEN              190
  271. #define RIGHT_TOKEN                     191
  272. #define RIPPLES_TOKEN                   192
  273. #define ROTATE_TOKEN                    193
  274. #define ROUGHNESS_TOKEN                 194
  275. #define SCALE_TOKEN                     195
  276. #define SEMI_COLON_TOKEN                196
  277. #define SINGLE_QUOTE_TOKEN              197
  278. #define SKY_TOKEN                       198
  279. #define SLASH_TOKEN                     199
  280. #define SMOOTH_TOKEN                    200
  281. #define SMOOTH_TRIANGLE_TOKEN           201
  282. #define SPECULAR_TOKEN                  202
  283. #define SPHERE_TOKEN                    203
  284. #define SPOTLIGHT_TOKEN                 204
  285. #define SPOTTED_TOKEN                   205
  286. #define STAR_TOKEN                      206
  287. #define STRING_LITERAL_TOKEN            207
  288. #define STURM_TOKEN                     208
  289. #define TEXTURE_ID_TOKEN                209
  290. #define TEXTURE_TOKEN                   210
  291. #define TGA_TOKEN                       211
  292. #define THRESHOLD_TOKEN                 212
  293. #define TIGHTNESS_TOKEN                 213
  294. #define TILDE_TOKEN                     214
  295. #define TILE2_TOKEN                     215
  296. #define TILES_TOKEN                     216
  297. #define TNORMAL_ID_TOKEN                217
  298. #define TNORMAL_TOKEN                   218
  299. #define TORUS_TOKEN                     219
  300. #define TRACK_TOKEN                     220
  301. #define TRANSFORM_ID_TOKEN              221
  302. #define TRANSFORM_TOKEN                 222
  303. #define TRANSLATE_TOKEN                 223
  304. #define TRIANGLE_TOKEN                  224
  305. #define TURBULENCE_TOKEN                225
  306. #define TYPE_TOKEN                      226
  307. #define UNION_TOKEN                     227
  308. #define UP_TOKEN                        228
  309. #define USE_COLOR_TOKEN                 229
  310. #define USE_COLOUR_TOKEN                230
  311. #define USE_INDEX_TOKEN                 231
  312. #define U_STEPS_TOKEN                   232
  313. #define V_STEPS_TOKEN                   233
  314. #define WATER_LEVEL_TOKEN               234
  315. #define WAVES_TOKEN                     235
  316. #define WOOD_TOKEN                      236
  317. #define WRINKLES_TOKEN                  237
  318. #define BACKGROUND_TOKEN                238
  319. #define OPEN_TOKEN                      239
  320. #define AGATE_TURB_TOKEN                240
  321. #define IRID_TOKEN                      241
  322. #define THICKNESS_TOKEN                 242
  323. #define IRID_WAVELENGTH_TOKEN           243
  324. #define CRACKLE_TOKEN                   244
  325. #define ADC_BAILOUT_TOKEN               245
  326. #define FILL_LIGHT_TOKEN                246
  327. #define NUMBER_OF_WAVES_TOKEN           247
  328. #define FOG_TYPE_TOKEN                  248
  329. #define FOG_ALT_TOKEN                   249
  330. #define FOG_OFFSET_TOKEN                250
  331. #define TEXT_TOKEN                      251
  332. #define TTF_TOKEN                       252
  333. #define REL_GE_TOKEN                    253
  334. #define REL_LE_TOKEN                    254
  335. #define REL_NE_TOKEN                    255
  336. #define APERTURE_TOKEN                  256
  337. #define BLUR_SAMPLES_TOKEN              257
  338. #define FOCAL_POINT_TOKEN               258
  339. #define QUILTED_TOKEN                   259
  340. #define CONTROL0_TOKEN                  260
  341. #define CONTROL1_TOKEN                  261
  342. #define RAINBOW_TOKEN                   262
  343. #define SKYSPHERE_TOKEN                 263
  344. #define ANGLE_TOKEN                     264
  345. #define WIDTH_TOKEN                     265
  346. #define ARC_ANGLE_TOKEN                 266
  347. #define PERSPECTIVE_TOKEN               267
  348. #define ORTHOGRAPHIC_TOKEN              268
  349. #define FISHEYE_TOKEN                   269
  350. #define ULTRA_WIDE_ANGLE_TOKEN          270
  351. #define OMNIMAX_TOKEN                   271
  352. #define PANORAMIC_TOKEN                 272
  353. #define TEST_CAMERA_1_TOKEN             273
  354. #define TEST_CAMERA_2_TOKEN             274
  355. #define TEST_CAMERA_3_TOKEN             275
  356. #define TEST_CAMERA_4_TOKEN             276
  357. #define LATHE_TOKEN                     277
  358. #define LINEAR_SPLINE_TOKEN             278
  359. #define QUADRATIC_SPLINE_TOKEN          279
  360. #define CUBIC_SPLINE_TOKEN              280
  361. #define POLYGON_TOKEN                   281
  362. #define PRISM_TOKEN                     282
  363. #define LINEAR_SWEEP_TOKEN              283
  364. #define CONIC_SWEEP_TOKEN               284
  365. #define SOR_TOKEN                       285
  366. #define SPIRAL1_TOKEN                   286
  367. #define SPIRAL2_TOKEN                   287
  368. #define STRENGTH_TOKEN                  288
  369. #define HIERARCHY_TOKEN                 289
  370. #define RAMP_WAVE_TOKEN                 290
  371. #define TRIANGLE_WAVE_TOKEN             291
  372. #define SINE_WAVE_TOKEN                 292
  373. #define SCALLOP_WAVE_TOKEN              293
  374. #define PIGMENT_MAP_TOKEN               294
  375. #define NORMAL_MAP_TOKEN                295
  376. #define SLOPE_MAP_TOKEN                 296
  377. #define TEXTURE_MAP_TOKEN               297
  378. #define PIGMENT_MAP_ID_TOKEN            298
  379. #define NORMAL_MAP_ID_TOKEN             299
  380. #define SLOPE_MAP_ID_TOKEN              300
  381. #define TEXTURE_MAP_ID_TOKEN            301
  382. #define SUPERELLIPSOID_TOKEN            302
  383. #define QUATERNION_TOKEN                303
  384. #define CUBE_TOKEN                      304
  385. #define MAX_ITERATION_TOKEN             305
  386. #define HYPERCOMPLEX_TOKEN              306
  387. #define RAINBOW_ID_TOKEN                307
  388. #define FOG_ID_TOKEN                    308
  389. #define SKYSPHERE_ID_TOKEN              309
  390. #define ATMOSPHERE_ID_TOKEN             310
  391. #define ATMOSPHERE_TOKEN                311
  392. #define SCATTERING_TOKEN                312
  393. #define AA_LEVEL_TOKEN                  313
  394. #define AA_THRESHOLD_TOKEN              314
  395. #define SAMPLES_TOKEN                   315
  396. #define FADE_POWER_TOKEN                316
  397. #define FADE_DISTANCE_TOKEN             317
  398. #define TURB_DEPTH_TOKEN                318
  399. #define PPM_TOKEN                       319
  400. #define PGM_TOKEN                       320
  401. #define INCIDENCE_TOKEN                 321
  402. #define AVERAGE_TOKEN                   322
  403. #define MESH_TOKEN                      323
  404. #define WARP_TOKEN                      324
  405. #define OFFSET_TOKEN                    325
  406. #define REPEAT_TOKEN                    326
  407. #define BLACK_HOLE_TOKEN                327
  408. #define SPIRAL_TOKEN                    328
  409. #define FLIP_TOKEN                      329
  410. #define AMBIENT_LIGHT_TOKEN             330
  411. #define IF_TOKEN                        331
  412. #define ELSE_TOKEN                      332
  413. #define END_TOKEN                       333
  414. #define SWITCH_TOKEN                    334
  415. #define CASE_TOKEN                      335
  416. #define RANGE_TOKEN                     336
  417. #define WHILE_TOKEN                     337
  418. #define BREAK_TOKEN                     338
  419. #define FALLOFF_ANGLE_TOKEN             339
  420. #define CAUSTICS_TOKEN                  340
  421. #define JULIA_FRACTAL_TOKEN             341
  422. #define SQR_TOKEN                       342
  423. #define RECIPROCAL_TOKEN                343
  424. #define STR_TOKEN                       344
  425. #define CONCAT_TOKEN                    345
  426. #define CHR_TOKEN                       346
  427. #define SUBSTR_TOKEN                    347
  428. #define STRING_ID_TOKEN                 348
  429. #define WARNING_TOKEN                   349
  430. #define ERROR_TOKEN                     350
  431. #define RENDER_TOKEN                    351
  432. #define STATISTICS_TOKEN                352
  433. #define DEBUG_TOKEN                     353
  434. #define VARIANCE_TOKEN                  354
  435. #define CONFIDENCE_TOKEN                355
  436. #define RADIOSITY_TOKEN                 356
  437. #define BRIGHTNESS_TOKEN                357
  438. #define COUNT_TOKEN                     358
  439. #define DISTANCE_MAXIMUM_TOKEN          359
  440. #define ERROR_BOUND_TOKEN               360
  441. #define GRAY_THRESHOLD_TOKEN            361
  442. #define LOW_ERROR_FACTOR_TOKEN          362
  443. #define MINIMUM_REUSE_TOKEN             363
  444. #define NEAREST_COUNT_TOKEN             364
  445. #define RECURSION_LIMIT_TOKEN           365
  446. #define HF_GRAY_16_TOKEN                366
  447. #define GLOBAL_SETTINGS_TOKEN           367
  448. #define ECCENTRICITY_TOKEN              368
  449. #define HOLLOW_TOKEN                    369
  450. #define ATMOSPHERIC_ATTENUATION_TOKEN   370
  451. #define MATRIX_TOKEN                    371
  452. #define HALO_TOKEN                      372
  453. #define HALO_ID_TOKEN                   373
  454. #define CONSTANT_TOKEN                  374
  455. #define LINEAR_TOKEN                    375
  456. #define VOLUME_OBJECT_TOKEN             376
  457. #define MAX_VALUE_TOKEN                 377
  458. #define EXPONENT_TOKEN                  378
  459. #define EMITTING_TOKEN                  379
  460. #define ATTENUATING_TOKEN               380
  461. #define GLOWING_TOKEN                   381
  462. #define DUST_TOKEN                      382
  463. #define DUST_TYPE_TOKEN                 383
  464. #define VOLUME_RENDERED_TOKEN           384
  465. #define VOL_WITH_LIGHT_TOKEN            385
  466. #define PLANAR_MAPPING_TOKEN            386
  467. #define SPHERICAL_MAPPING_TOKEN         387
  468. #define CYLINDRICAL_MAPPING_TOKEN       388
  469. #define BOX_MAPPING_TOKEN               389
  470. #define PERIOD_TOKEN                    390
  471. #define SYS_TOKEN                       391
  472. #define STRUPR_TOKEN                    392
  473. #define STRLWR_TOKEN                    393
  474. #define U_TOKEN                         394
  475. #define V_TOKEN                         395
  476. #define IFDEF_TOKEN                     396
  477. #define PNG_TOKEN                       397
  478. #define PRECISION_TOKEN                 398
  479. #define SLICE_TOKEN                     399
  480. #define ASSUMED_GAMMA_TOKEN             400
  481. #define ATAN_TOKEN                      401     /* fractals */
  482. #define COSH_TOKEN                      402     /* fractals */
  483. #define SINH_TOKEN                      403     /* fractals */
  484. #define TANH_TOKEN                      404     /* fractals */
  485. #define ATANH_TOKEN                     405     /* fractals */
  486. #define ACOSH_TOKEN                     406     /* fractals */
  487. #define ASINH_TOKEN                     407     /* fractals */
  488. #define PWR_TOKEN                       408     /* fractals */
  489. #define T_TOKEN                         409
  490. #define IFNDEF_TOKEN                    410
  491. #define LAST_TOKEN                      411
  492.  
  493.  
  494. /*****************************************************************************
  495. * Global typedefs
  496. ******************************************************************************/
  497.  
  498.  
  499.  
  500. /*****************************************************************************
  501. * Global variables
  502. ******************************************************************************/
  503.  
  504. extern short Not_In_Default;
  505. extern short Ok_To_Declare;
  506.  
  507.  
  508. /*****************************************************************************
  509. * Global functions
  510. ******************************************************************************/
  511.  
  512. void Parse_Error PARAMS((TOKEN Token_Id));
  513. void Parse_Error_Str PARAMS((char *str));
  514. void Parse_Begin PARAMS((void));
  515. void Parse_End PARAMS((void));
  516. void Parse_Comma PARAMS((void));
  517. void Destroy_Frame PARAMS((void));
  518. void Parse PARAMS((void));
  519. void Write_Token PARAMS((TOKEN Token_Id, DATA_FILE *Data_File));
  520. void MAError PARAMS((char *str, long size));
  521. void Warn_State PARAMS((TOKEN Token_Id, TOKEN Type));
  522. void Warn PARAMS((DBL Level, char *str));
  523. void Only_In PARAMS((char *s1,char *s2));
  524. void Not_With PARAMS((char *s1,char *s2));
  525. void Link_Textures PARAMS((TEXTURE **Old_Texture, TEXTURE *New_Texture));
  526.  
  527. void Parse_Object_Mods PARAMS((OBJECT *Object));
  528. OBJECT *Parse_Object PARAMS((void));
  529. void Parse_Default PARAMS((void));
  530. void Parse_Declare PARAMS((void));
  531. void Parse_Matrix PARAMS((MATRIX Matrix));
  532.  
  533.  
  534. #endif
  535.   
  536.   
  537.